ראיון 1: מתואר סיפור על מפעל שמכיל ירקות ויש מכונה שממיינת את הירקות לפי סוג, מלפפון או עגבניה. האלגוריתם מזהה לפי תמונה מה הסוג וזה הפלט. האלגוריתם יכול להתחרט ולפלוט פלט אחר בעוד מספר שניות למשל. בהתחלה הפלט הוא "לא יודע" האלגוריתם עוד לא קולט מה הסוג של הירק.המכונה ממיינת לפי הפלט הראשון. עבור הצלחה של מיון של עגבניה המפעל מרוויח 10 שקל עבור כשלון מפסיד 20. עבור הצלחה של מלפפון הרווח הוא 5 שקל ועבור כשלון ההפסד 10. אנחנו רוצים לדעת איזה אלגוריתם ימקסם את הרווחים של החברה, מוצגים באחוזים המדדים של טסט מסוים שהשתמש ב2 אלגוריתמים. הטסט מבצע עבור כל פרי 5 בדיקות במשך 5 שניות. להסביר מה הבעיה בטסט מה לא הגיוני, למצוא את זה בקוד הנתון. ואחכ להציע טסט אחר ולכתוב אותו בקוד.
תשובות
הוסף תשובה
|
לצפיה בתשובות
פברואר 2020
לא צריך לעשות 5 בדיקות, בכל מקרה המכונה ממיינת לפי הפלט הראשון, לכן עד שיש פלט שהוא שונה מ"לא ידוע" נחכה (לולאה) , וכשיש פלט נשווה את עם התוצאה האמיתית תוך כדי התחשבות בנתונים של רווח והפסד לפי כל מקרה. את כל זה נחלק בזמן שלקח לנו לחכות כל פעם עד שהגיע פלט שיכלנו להתקדם הלאה, כלומר סוכמים את הרווח ואת הזמן ובסוף התשובה היא רווח /זמן .
באופן כללי היו 4 שלבים:
שלב ראשון - מבחן בית ב - codility אשר התחלק ל - 3 תתי מבחנים:
מבחן ראשון 30 דקות, מבחן שני 90 דקות ומבחן שלישי 150 דקות.
שלב שני - ראיון עם ראש צוות.
שלב שלישי - ראיון עם ראש מחלקה.
שלב רביעי - ראיון עם HR.
שאלות מתוך הראיון
שלב ראשון (מבחן בית) - מבחן של 30 ו 90 דקות הם סבירים וניתן לסיים בחצי מהזמן. מבחן של ה - 150 דקות הוא קשה עם רושמים אותו ב - C++ כמו שאני עשיתי.
שלב שני (ראיון עם ראש צוות) - תיקון קוד. בקוד היה צריך לגרום לתוכנה להיות single thread ושיעמוד בדרישות שביקשו. ואז ביקשו שיהיה multi thread ויעמוד בדרישות שנתנו.
מכניסים מכתב סודי הכתוב בשפה האנגלית למטריצה של chars עם 50 עמודות (כל תא מכיל אות בודדת/רוח). בכדי להצפין את ההודעה מערבבים את עמודות המטריצה באופן לא ידוע (עמודות בלבד) כך שמתקבל טקסט לא קריא.
א': כמה אפשרויות נצתרך לנסות בשביל לבדוק את כל התוצאות האפשריות עד שנמצא את המכתב המקורי?
ב': תן אלגוריתם יעיל לגילוי המכתב הסודי.
ג': מה החיסרון בפיתרון שהבאת.
ד: כיצד תתגבר על החיסרון הנל?
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
א': 50!
ב': ע"פ שכיחות של צמדים של זוגות אותיות (נניח th הרבה יותר שכיח מbd) ומכפלה שלערכי השכיחות של כל השורות והחזרת המקסימום.
ג: במקרה ויש צמד אותיות שהופיע עם שכיחות 0 זה מאפס את כל השורה
ד: להגדיר אפסילון קטן מאוד אך גדול מאפס שיהיה השכיחות בכל מקום שנתון 0 (נניח 0.00001O)
1. נתון מערך n×m שזה תמונה. בכל תא במערך יש מספר. צריך לסכום את כל האיברים במרובע.
2. כיצד תשפר שכאשר ניגשים למרובע קטן בזמן הכי מהיר נחשב כבר את הסכומים. איזה טבלאות עזר שחושבו בזמן קבלת התמונה הגדולה תייצר, על מנת לגשת ולחשב מהר את המרובע הקטן שניגש אלין, כל פעם מרובע קטן אחר בתוך ה m×n
תשובות
הוסף תשובה
|
לצפיה בתשובות
ספטמבר 2020
אפשר בזמן קבלת התמונה הגדולה ליצור מערך עזר שסוכם בכל תא את כל הערכים עד אליו (אפשר נניח להתחיל מהפינה הימנית העליונה, אבל זה פשוט לא משנה), ואז בזמן אמת להחזיר את הסכום במרובע הרצוי פחות המרובעים שקדמו אליו ואותם אנחנו לא רוצים (קצת קשה להסביר, אבל כדאי לייצר עם דוגמא ואז הרבה יותר מובן).
צריך רק להיזהר לא לסכום או להוריד מרובע פעמיים.
1. כתוב פונקציה בשורה אחת, שמדליקה את הביט ה n.
2. כתוב פונקציה שמקבלת את מספר הביט, וכמה ביטים להדליק. פונקציה בשורה אחת.
3.נתון 32ביט. שהערך בהם הוא בזוגות ביטים 00 או 11 בכל 2 ביטים. אלו ערכים נכונים. תבדוק שלא נכנס ערך 10 או 01 באחת הזוגות.כי זה שגיאה. ללא שימוש ב for
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2020
3. הרעיון הוא בזוג אחד לדוגמא 11, צריך להפריד אותם ל1 לבד ואת השני 1 לבד, להעמיד אותם אחד מתחת לשני ואז לבדוק אם הם שונים.
ככ בדיוק לעשות עם כל ה 32 ביט בבת אחת.